package com.ryan.security.dto;

import com.fasterxml.jackson.annotation.JsonView;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.RequiredArgsConstructor;
import lombok.ToString;
import org.hibernate.validator.constraints.NotBlank;

import javax.validation.constraints.NotNull;
import java.util.Date;

/**
 * Created by kaimin on 31/12/2018.
 * time : 12:33
 */
@Data
@AllArgsConstructor
@ToString
public class User {

    //使用JsonView，视图即不同的场景使用不同的返回字段
    //步骤1使用接口来声明多个视图 2 在值对象get方法上面指定视图 3在controller上指定视图

    //1接口视图 -用户简单信息
    public interface UserSimpleView{};
    // 用户详细信息视图
    public interface UserDetailView extends UserSimpleView{};

    //username在这个视图上展示
    @JsonView(UserSimpleView.class)
    private String username;
    @JsonView(UserDetailView.class)
    @NotBlank
    private String password;

    @JsonView(UserSimpleView.class)
    private int id;

    private Date birthday;
}
